const cloud = require('wx-server-sdk');

cloud.init();

// 获取数据库引用
const db = cloud.database();

// 云函数入口函数
exports.main = async (event, context) => {
  const {
    openid,
    add,
    sub
  } = event; // 获取传入的 openid、add 和 sub

  try {
    // 检查传入的数据是否有效
    if (!openid || !Array.isArray(add) || !Array.isArray(sub)) {
      return {
        data: {
          status: 404,
          message: '数据不完整'
        },
      };
    }

    // 创建一个包含所有信息的对象
    const moneyData = {
      add: add,
      sub: sub,
      createTime: new Date(), // 当前时间
    };

    // 查询是否有与当前 openid 匹配的记录
    const queryResult = await db.collection('moneyType').where({ openid }).get();

    if (queryResult.data.length > 0) {
      // 如果存在记录，则更新第一条记录
      const firstDocId = queryResult.data[0]._id;
      const updateResult = await db.collection('moneyType').doc(firstDocId).update({
        data: moneyData
      });
      return {
        data: {
          status: 200,
          message: '更新成功',
          data: {
            _id: firstDocId
          }
        },
      };
    } else {
      // 如果不存在记录，则插入新记录
      const insertResult = await db.collection('moneyType').add({
        data: { ...moneyData,
                openid: openid // 确保在插入时也包含 openid 字段
              }
      });
      return {
        data: {
          status: 200,
          message: '提交成功',
          data: {
            _id: insertResult._id
          }
        },
      };
    }
  } catch (err) {
    console.error(err);
    throw err;
  }
};